layui.use(['element', 'form', 'jquery', 'upload'], function () {
    var element = layui.element;
    var form = layui.form;
    var $ = layui.$;
    var upload = layui.upload;

    form.render();



    upload.render({
        elem: '#select'
        , url: '/files/upload'
        , auto: false
        , bindAction: '#upload'
        , accept: 'file'
        , exts: "zip|rar|exe|msi|gz|tar|7z|txt|bat|sh"
        , data: {
            "description": function () {
                return $('#description').val();
            },
        }
        , done: function (res) {

            console.log(res);
            // 刷新页面
            if (res.code === 200) {
                layer.msg('上传成功', { icon: 1 });
                setTimeout(function () {
                    location.reload();
                }, 1000);
            }else{
                layer.msg('上传失败: ' + res.error, { icon: 2 });
            }

        }
    });




    // Ping操作
    $('#btnPing').click(function () {
        var ip = $('#ip').val();
        var count = $('#pingCount').val();

        if (!ip) {
            layer.msg('请输入IP地址', { icon: 2 });
            return;
        }

        $.post('/network/ping', { ip: ip, count: count }, function (res) {
            if (res.error) {
                $('#pingResult').text('错误: ' + res.error);
            } else {
                $('#pingResult').text(res.result);
            }
        }).fail(function () {
            $('#pingResult').text('请求失败，请检查网络连接');
        });
    });

    // 端口扫描
    $('#btnPortScan').click(function () {
        var ip = $('#ip').val();
        var port = $('#port').val();

        if (!ip) {
            layer.msg('请输入IP地址', { icon: 2 });
            return;
        }

        if (!port || port < 1 || port > 65535) {
            layer.msg('请输入有效的端口号(1-65535)', { icon: 2 });
            return;
        }

        $.post('/network/portscan', { ip: ip, port: port }, function (res) {
            if (res.error) {
                appendPortResult('错误: ' + res.error);
            } else {
                appendPortResult(`[${res.timestamp}] ${res.result}`);
            }
        }).fail(function () {
            appendPortResult('请求失败，请检查网络连接');
        });
    });

    // 持续探测
    var continuousInterval;
    $('#btnContinuous').click(function () {
        var ip = $('#ip').val();
        var port = $('#port').val();

        if (!ip) {
            layer.msg('请输入IP地址', { icon: 2 });
            return;
        }

        if (!port || port < 1 || port > 65535) {
            layer.msg('请输入有效的端口号(1-65535)', { icon: 2 });
            return;
        }

        // 显示停止按钮
        $('#btnContinuous').hide();
        $('#btnStop').show();

        // 清空结果
        $('#portResult').text('');

        // 开始持续探测
        continuousInterval = setInterval(function () {
            $.post('/network/portscan', { ip: ip, port: port, continuous: true }, function (res) {
                if (res.error) {
                    appendPortResult('错误: ' + res.error);
                } else {
                    appendPortResult(`[${res.timestamp}] ${res.result}`);
                }
            }).fail(function () {
                appendPortResult('请求失败，请检查网络连接');
            });
        }, 2000); // 每2秒探测一次
    });

    // 停止持续探测
    $('#btnStop').click(function () {
        clearInterval(continuousInterval);
        $('#btnContinuous').show();
        $('#btnStop').hide();
        appendPortResult('持续探测已停止');
    });

    // 添加端口探测结果
    function appendPortResult(text) {
        var current = $('#portResult').text();
        if (current) {
            $('#portResult').text(current + '\n' + text);
        } else {
            $('#portResult').text(text);
        }
        // 滚动到底部
        var pre = $('#portResult')[0];
        pre.scrollTop = pre.scrollHeight;
    }


    // 删除文件处理
    $('.delete-btn').click(function () {
        var toolId = $(this).data('id');
        var toolName = $(this).closest('tr').find('td:first').text();

        layer.confirm('确定要删除 "' + toolName + '" 吗？', {
            icon: 3,
            title: '删除确认',
            btn: ['确定', '取消']
        }, function (index) {
            layer.close(index);

            // 显示加载中
            var loadIndex = layer.load();

            $.ajax({
                type: 'POST',
                url: '/files/delete/' + toolId,
                success: function (res) {
                    layer.close(loadIndex);
                    if (res.success) {
                        layer.msg('删除成功', { icon: 1 });
                        // 刷新页面
                        setTimeout(function () {
                            location.reload();
                        }, 1000);
                    } else {
                        layer.msg('删除失败: ' + res.message, { icon: 2 });
                    }
                },
                error: function () {
                    layer.close(loadIndex);
                    layer.msg('请求失败，请检查网络', { icon: 2 });
                }
            });
        });
    });

    // 绑定删除按钮事件（用于动态添加的元素）
    $(document).on('click', '.delete-btn', function () {
        // 同上删除处理逻辑
    });
});